perm filename DERIV.VRP[TIM,LSP] blob sn#617895 filedate 1981-10-12 generic text, type T, neo UTF8
(DEFINEQ (DER1 (A) (LIST 'QUOTIENT (DERIV A) A))

 (DERIV (A)
	(COND 
		((ATOM A)		(COND ((EQUAL A 'X) 1) (T 0)))
		((EQUAL (CAR A) 'PLUS)	(CONS 'PLUS (MAPCAR (CDR A) 'DERIV)))
		((EQUAL (CAR A) 'DIFFERENCE) 
					(CONS 'DIFFERENCE (MAPCAR (CDR A)
								  'DERIV)))
		((EQUAL (CAR A) 'TIMES)	(LIST 'TIMES 
					      A 
					      (CONS 'PLUS (MAPCAR A 'DER1))))
		((EQUAL (CAR A) 'QUOTIENT)
					(LIST 'DIFFERENCE 
					      (LIST 'QUOTIENT 
						    (DERIV (CADR A)) 
						    (CADDR A))
				     	      (LIST 'QUOTIENT 
						    (CADR A) 
						    (LIST 'TIMES
							  (CADDR A)
							  (CADDR A)
							  (DERIV (CADDR A))))))
		(T 'ERROR)))

(RUN ()
	(PROG (I FORMULA)
	      (SETQ I 0)
	      (SETQQ FORMULA (PLUS (TIMES 3 X X) (TIMES A X X) (TIMES B X) 5))
	Q     (DERIV '(PLUS (TIMES 3 X X) (TIMES A X X) (TIMES B X) 5))
	      (COND ((LESSP (SETQ I (ADD1 I)) 500) (GO Q)))
	      (PRINT (DERIV FORMULA))))
)
STOP